curl_multi_add_handle
向curl批处理会话中添加单独的curl句柄
PHP 5.1.0 及以上版本
curl_multi_add_handle() 函数用于将一个cURL句柄(即curl_init()返回的句柄)添加到一个cURL多重请求句柄中。这是cURL的多线程(多请求)处理的一部分,允许在一个请求中同时发起多个请求,提升网络请求的效率。
curl_multi_add_handle(resource $mh, resource $ch): int
返回值是一个整数,表示操作结果。如果成功,返回CURLM_OK(即0)。如果发生错误,返回相应的错误代码。
以下是使用 curl_multi_add_handle() 函数的一个示例,展示如何同时发起多个HTTP请求:
本示例展示了如何初始化多个cURL请求,并将其添加到一个多重请求句柄中,然后执行这些请求:
<?php // 初始化一个多重cURL句柄 $mh = curl_multi_init(); // 创建第一个cURL请求句柄 $ch1 = curl_init('http://www.example.com'); curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true); // 创建第二个cURL请求句柄 $ch2 = curl_init('http://www.example.org'); curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true); // 将cURL请求句柄添加到多重句柄中 curl_multi_add_handle($mh, $ch1); curl_multi_add_handle($mh, $ch2); // 执行多个请求 $running = null; do { curl_multi_exec($mh, $running); } while ($running > 0); // 获取并输出结果 $response1 = curl_multi_getcontent($ch1); $response2 = curl_multi_getcontent($ch2); echo "Response from example.com: " . $response1; echo "Response from example.org: " . $response2; // 关闭cURL句柄 curl_multi_remove_handle($mh, $ch1); curl_multi_remove_handle($mh, $ch2); curl_multi_close($mh); ?>